Configuring Enhanced Charging Services
At least one administrative user account that has ECS functionality privileges must be configured on the system. This is the account that is used to log on and execute ECS-related commands. For security purposes, it is recommended that these user accounts be created along with general system functionality administration.
administrator
<user_name> password
<password> ecs
To configure and enable Diameter and DCCA functionality with ECS on your system, you must obtain and install the [600-00-7574]
Enhanced Charging Bundle 2 1k Sessions license.
For information on installing licenses, see the Managing License Keys section of the
Software Management Operations chapter in the
Administration and Configuration Guide.
interface
<interface_name>
ip address
<ip_address/mask>
A charging service has analyzers that define which packets to examine and ruledefs (ruledefs) that define what packet contents to take action on and what action to take when the ruledef is true. Charging services are configured at the global configuration level and are available to perform packet inspection on sessions in all contexts.
active-charging service
<service_name> [ -noconfirm ]
A ruledef can be a charging or routing, or a post-processing rule. If the same ruledef is required to be a charging rule in one rulebase and a post-processing rule in another one, then two separate identical ruledefs will have to be defined.
active-charging service
<service_name>
<protocol> <expression> <operator> <condition>
rule-application charging
active-charging service
<service_name>
<protocol> <expression> <operator> <condition>
active-charging service
<service_name>
<protocol> <expression> <operator> <condition>
rule-application post-processing
active-charging service
<service_name>
group-of-ruledefs
<group_name> [ -noconfirm ]
add-ruledef priority
<priority> ruledef
<ruledef_name>
group-of-ruledefs-application { charging | post-processing }
active-charging service
<service_name>
charging-action
<charging_action_name> [ -noconfirm ]
billing-action [ edr
<edr_format> [ wait-until-flow-ends ] | egcdr | exclude-from-udrs | radius ] +
Readdressing of packets based on the destination IP address of the packets enables redirecting unknown gateway traffic to known/trusted gateways. This is implemented by configuring the re-address server in the charging action.
active-charging service
<service_name>
charging-action
<charging_action_name>
flow action readdress { server
<ip_address> [ port
<port_number> ] | port
<port_number> }
active-charging service
<service_name>
charging-action
<charging_action_name>
nexthop-forwarding-address
<ip_address>
A rulebase specifies which protocol analyzers to run and which packets are analyzed. Multiple rulebases may be defined for the Active Charging Service. A rulebase is basically a subscriber’s profile in a charging service.
active-charging service
<service_name>
rulebase
<rulebase_name> [ -noconfirm ]
flow end-condition { { content-filtering | normal-end-signaling | timeout + } | { { hagr | handoff | session-end } [ flow-overflow ] + } [ url-blacklisting ] } edr
<edr_format_name>
billing-records udr udr-format
<udr_format_name>
action priority
<action_priority> { [ dynamic-only | static-and-dynamic | timedef
<timedef_name> ] { group-of-ruledefs
<ruledefs_group_name> | ruledef
<ruledef_name> } charging-action
<charging_action_name> [ monitoring-key
<monitoring_key> ] [ description
<description> ] }
route priority
<route_priority> ruledef
<ruledef_name> analyzer
<analyzer> [ description
<description> ]
rtp dynamic-flow-detection
udr threshold interval
<interval>
cca radius charging context
<context> group
<group_name>
cca radius accounting interval
<interval>
ECS generates postpaid charging data files which can be retrieved from the system periodically and used as input to a billing mediation system for postprocessing.
Up to 32 different EDR schema types may be specified, each composed of up to 32 fields or analyzer parameter names. The records are written at the time of each rule event in a comma-separated (CSV) format.
active-charging service
<service_name>
edr-format
<edr_format_name> [ -noconfirm ]
attribute
<attribute> { [ format { MM/DD/YY-HH:MM:SS | MM/DD/YYYY-HH:MM:SS | YYYY/MM/DD-HH:MM:SS | YYYYMMDDHHMMSS | seconds } ] [ localtime ] | [ { ip | tcp } { bytes | pkts } { downlink | uplink } ] priority
<priority> }
rule-variable
<protocol> <rule> priority
<priority>
event-label
<event-label> priority
<priority>
ECS generates postpaid charging data files which can be retrieved from the system periodically and used as input to a billing mediation system for postprocessing.
UDRs are generated according to action statements in rule commands. Up to 32 different UDR schema types may be specified, each composed of up to 32 fields or analyzer parameter names. The records are written thresholds in a comma-separated (CSV) format.
active-charging service
<service_name>
udr-format
<udr_format_name> [ -noconfirm ]
attribute
<attribute> { [ format { MM/DD/YY-HH:MM:SS | MM/DD/YYYY-HH:MM:SS | YYYY/MM/DD-HH:MM:SS | YYYYMMDDHHMMSS | seconds } ] [ localtime ] | [ { bytes | pkts } { downlink | uplink } ] ] priority
<priority> }
administrator
<user_name> [ encrypted ] password
<password>
config-administrator
<user_name> [ encrypted ] password
<password>
|
l
|
You must specify the sftp keyword to enable the new account to SFTP into the context to retrieve record files.
|
subscriber name
<subscriber_name> [ -noconfirm ]
active-charging rulebase
<rulebase_name>
apn
<apn_name> [ -noconfirm ]
active-charging rulebase
<rulebase_name>
active-charging service
<service_name>
charging-rule-optimization { high | low | medium }
|
l
|
Both the medium and high options causes reorganization of the entire memory structure whenever any change is made (for example, adding another action CLI command).
|
|
l
|
high option causes allocation of a significant amount of memory for the most efficient organization.
|
active-charging service
<service_name>
charging-action
<charging_action_name>
cca charging credit [ preemptively-request | rating-group
<coupon_id> ]
credit-control [ group
<group_name> ]
mode { diameter | radius }
quota time-threshold {
<absolute_value> | percent
<percent_value> }
quota unit-threshold {
<absolute_value> | percent
<percent_value> }
quota volume-threshold {
<absolute_value> | percent
<percent_value> }
|
l
|
<service_name> must be the name of the Active Charging Service in which you want to configure Prepaid Credit Control Application.
|
|
l
|
<charging_action_name> must be the name of the charging action for which you want to configure Prepaid Credit Control Application.
|
|
l
|
Option. To configure the redirection of URL for packets that match a ruledef and action on quota request timer, in the Charging Action Configuration mode, enter the following command. This command also specifies the redirect-URL action on packet and flow for Session Control functionality.
|
flow action redirect-url <redirect_url> [ clear-quota-retry-timer ]
billing-action exclude-from-udrs
flow action redirect-url "http://10.1.67.214/cgi-bin/aoc.cgi\077 imsi=#bearer.calling-station-id#&url=#http.url#&acctsessid=#bearer.acct-session-id#&correlationid=#bearer.correlation-id#&username=#bearer.user-name#&ip=#bearer.served-bsa-addr#&subid=#bearer.subscriber-id#&host=#http.host#&httpuri=#http.uri#" clear-quota-retry-timer
|
l
|
Option. To configure credit control quota related parameters, use the following configuration example:
|
active-charging service
<service_name>
cca quota { holding-time
<holding_time> content-id
<content_id> | retry-time
<retry_time> [ max-retries
<max_retries> ] }
cca quota time-duration algorithm { consumed-time
<consumed_time> [ plus-idle ] [ content-id
<content_id> ] | continuous-time-periods
<seconds> [ content-id
<content_id> ] | parking-meter
<seconds> [ content-id
<content_id> ] }
<rulebase_name> must be the name of the rulebase in which you want to configure Prepaid Credit Control configurables.
|
l
|
Option. To define credit control rules for quota state and URL redirect match rules with RADIUS AVP, use the following configuration example:
|
active-charging service
<service_name>
cca quota-state
<operator> { limit-reached | lower-bandwidth }
cca redirect-indicator
<operator> <indicator_value>
<ruledef_name> must be the name of the ruledef that you want to use for Prepaid Credit Control Application rules.
cca redirect-indicator configuration is a RADIUS specific configuration.
|
l
|
Option. This is a Diameter-specific configuration. To configure the failure handling options for credit control session, in the Credit Control Configuration Mode, use the following configuration:
|
active-charging service
<service_name>
credit-control [ group
<group_name> ]
failure-handling { ccfh-session-timeout
<session_timeout> | { initial-request | terminate-request | update-request } { continue [ go-offline-after-tx-expiry | retry-after-tx-expiry ] | retry-and-terminate [ retry-after-tx-expiry ] | terminate }
|
l
|
Option. To configure the triggering option for credit reauthorization when the named values in the subscriber session changes, in the Credit Control Configuration Mode, enter the following command:
|
active-charging service
<service_name>
credit-control [ group
<group_name> ]
trigger type { cellid | lac | qos | rat | sgsn }+
|
l
|
Option: This is a Diameter specific configuration. If the configuration is for 3GPP network, to configure the virtual or real APN name to be sent in Credit Control Application (CCA) message, in the Credit Control Configuration Mode, enter the following command:
|
active-charging service
<service_name>
credit-control [ group
<group_name> ]
apn-name-to-be-included { gn | virtual }
active-charging service
<service_name>
credit-control [ group
<group_name> ]
diameter origin endpoint
<endpoint_name>
diameter dictionary
<dcca_dictionary>
diameter peer-select peer
<peer_name> [ realm <
realm_name> ] [ secondary-peer
<sec_peer_name> [ realm
<realm_name> ] ] [ imsi-based { [ prefix
| suffix ]
<imsi/prefix/suffix_start_value> } [ to
<imsi/prefix/suffix_end_value> ] ]
|
l
|
Diameter peer configuration set with the diameter peer-select command can be overridden by the dcca peer-select peer command in the APN Configuration mode for 3GPP service networks, and in Subscriber Configuration mode in other service networks.
|
|
l
|
Option. To configure the maximum time, in seconds, to wait for a response from Diameter peer, in the Credit Control Configuration Mode, enter the following command:
|
|
l
|
Option. To configure Diameter Credit Control Session Failover, in the Credit Control Configuration Mode, enter the following command:
|
|
l
|
Option. If you want to configure the service for IMS authorization in 3GPP service network, you can configure dynamic rule matching with Gx interface and dynamic rule matching order in rulebase, use the following configuration example:
|
active-charging service
<service_name>
dynamic-rule order { always-first | first-if-tied }
action priority
<action_priority> { [ dynamic-only | static-and-dynamic | timedef
<timedef_name> ] { group-of-ruledefs
<ruledefs_group_name> | ruledef
<ruledef_name> } charging-action
<charging_action_name> [ monitoring-key
<monitoring_key> ] [ description
<description> ] }
|
l
|
Option. To configure Diameter group AVP Requested-Service-Unit for Gy interface support to include a sub-AVP in CCRs using volume, time, and unit specific charging, in the Rulebase Configuration Mode, enter the following command:
|
cca diameter requested-service-unit sub-avp { time cc-time <duration> | units cc-service-specific-units <charging_unit> | volume { cc-input-octets <bytes> | cc-output-octets <bytes> | cc-total-octets <bytes> } + }

IMPORTANT:
The dcca peer-select configuration completely overrides all instances of
diameter peer-select configured within the Credit Control Configuration Mode for an Active Charging service.
subscriber name
<subscriber_name>
dcca peer-select peer
<host_name> [ [ realm
<realm_name> ] [ secondary-peer
<host_name> [ realm
<realm_name> ] ] ]

IMPORTANT:
The dcca peer-select configuration completely overrides all instances of
diameter peer-select configured within the Credit Control Configuration Mode for an Active Charging service.
dcca peer-select peer
<host_name> [ [ realm
<realm_name> ] [ secondary-peer
<host_name> [ realm
<realm_name> ] ] ]
RADIUS prepaid billing operates on a per content-type basis. Individual content-types are marked for prepaid treatment. When a traffic analysis rule marked with prepaid content-types matches, it triggers prepaid charge management.
active-charging service
<service_name>
credit-control [ group
<group_name> ]
cca radius charging context
<vpn_context> [ group
<group_name> ]
|
l
|
<rulebase_name> must be the name of the rulebase in which you want to configure Prepaid Credit Control configurables.
|
|
l
|
<vpn_context> must be the charging context in which the RADIUS parameters are configured:
|
|
l
|
Option. To specify the accounting interval duration for RADIUS prepaid accounting, in the Rulebase Configuration Mode, enter the following command:
|
|
l
|
Option. To specify the user password for RADIUS prepaid services, in the Rulebase Configuration Mode, enter the following command:
|
diameter endpoint <
endpoint_name>
origin host
<diameter_host> address <
ip_address>
peer <
peer> realm <
realm> address <
ip_address>
active-charging service <
service_name>
credit-control [ group
<group_name> ]
diameter origin endpoint <
endpoint_name>
diameter peer-select peer <
peer> realm <
realm>
diameter pending-timeout <
timeout>
diameter session failover
diameter dictionary <
dictionary>
failure-handling ccfh-session-timeout
<session_timeout>
failure-handling initial-request continue go-offline-after-tx-expiry
failure-handling update-request continue
failure-handling terminate-request continue
selection-mode sent-by-ms
ims-auth-service <
service>
ip access-group <
access_list> in
ip access-group <
access_list> out
ip context-name <
context_name>
active-charging rulebase <
rulebase_name>
ip access-list
<access_list_name>
redirect css service
<service_name> <keywords> <options>
|
l
|
<service_name> must be the ACS service name; no CSS service needs to be configured.
|
To apply an ACL to a RADIUS-based subscriber, use the Filter-Id attribute. For more information on this attribute, refer to the
AAA Interface Administration and Reference.
subscriber name
<subscriber_name>
ip access-group
<acl_name> [ in | out ]
show subscribers configuration username <subscriber_name>
ip access-group
<acl_name> [ in | out ]
show subscribers configuration username default
ip access-group
<acl_name> [ in | out ]
This section describes how to configure GTPP accounting which generates G-CDRs for ECS. Generated G-CDRs are sent to a configured Charging Gateway Function (CGF). ECS G-CDRs are sent in ASN.1 format and are encoded as described in 3GPP TS 32.015 V3.9.0 (2002–03) and 3GPP TS 29.060 V6.7.0 (2004–12).
gtpp charging-agent address
<ip_address>
|
l
|
The gtpp single-source command must be entered before any other configuration commands. If you add it to an existing configuration, make sure that it is the first command implemented after cards and ports are configured. This ensures that this command is implemented before any AAA Manager or Session Manager processes are started.
|
This section provides an example configuration to configure EDR/UDR file transfer and file properties parameters, including configuring hard disk support on SMC card on ST40 platform, transfer modes, transfer interval, etc.
edr-module active-charging-service
cdr [ [ push-interval
<interval> ] [ push-trigger space-usage-percent
<trigger_percentage> ] [ remove-file-after-transfer ] [ transfer-mode { pull | push primary { encrypted-url
<encrypted_url> | url
<url> } [ secondary { encrypted-secondary-url
<encrypted_secondry_url> | url
<secondary_url> } ] } ] [ via local-context ] + | use-harddisk ]
file [ charging-service-name { include | omit } ] [ compression { gzip | none } ] [ current-prefix
<string> ] [ delete-timeout
<seconds> ] [ directory
<directory_name> ] [ edr-format-name ] [ exclude-checksum-record ] [ field-separator { hyphen | omit | underscore } ] [ file-sequence-number rulebase-seq-num ] [ headers ] [ name
<file_name> ] [ reset-indicator ] [ rotation [ num-records
<number> | time
<seconds> | volume
<bytes> ] ] [ sequence-number { omit | padded | padded-six-length | unpadded } ] [ storage-limit
<limit> ] [ time-stamp { expanded-format | rotated-format | unix-format } ] [ trailing-text
<string> ] [ trap-on-file-delete ] [ xor-final-record ] +
udr-module active-charging-service
file [ charging-service-name { include | omit } ] [ compression { gzip | none } ] [ current-prefix
<string> ] [ delete-timeout
<seconds> ] [ directory
<directory_name> ] [ exclude-checksum-record ] [ field-separator { hyphen | omit | underscore } ] [ file-sequence-number rulebase-seq-num ] [ headers ] [ name
<file_name> ] [ reset-indicator ] [ rotation [ num-records
<number> | time
<seconds> | volume
<bytes> ] ] [ sequence-number { omit | padded | padded-six-length | unpadded } ] [ storage-limit
<limit> ] [ time-stamp { expanded-format | rotated-format | unix-format } ] [ trailing-text
<string> ] [ trap-on-file-delete ] [ udr-seq-num ] [ xor-final-record ] +
|
l
|
The cdr command keywords can be configured either in the EDR or the UDR Configuration Mode. Configuring in one mode prevents the configurations from being applied in the other mode.
|
|
l
|
The use-harddisk keyword is only available on the ST40 platform.
|
|
l
|
For the storage-limit <limit> keyword, on the ST16 platform, the total storage limit is 256 MB (268435456 bytes). And, on ST40 platform, the total storage limit is 512 MB (536870912 bytes). This limit is for both UDR and EDR files combined.
|
|
l
|
The cdr-push command is available in the Exec Mode.
|
|
l
|
<file_name> must be absolute path of the local file to push.
|
The following commands use SFTP to log on to a context named ECP as a user named
ecpadmin, through an interface configured in the ECS context that has the IP address
192.168.1.10 and retrieve all EDR or UDR files from the default locations:
active-charging service
<acs_service>
xheader-format
<xheader_format_name> [ -noconfirm ]
active-charging service
<acs_service>
xheader-format
<xheader_format_name> [ -noconfirm ]
insert
<xheader_field_name> { string-constant
<xheader_field_value> | variable { bearer { 3gpp charging-id | ggsn-address | imsi | radius-calling-station-id | sgsn-address | sn-rulebase | subscriber-ip-address } | http { host | url } }
active-charging service
<acs_service>
charging-action
<charging_action_name> [ -noconfirm ]
xheader-insert xheader-format
<xheader_format_name> [-noconfirm]
active-charging service
<service_name>
<protocol> <expression> <operator> <condition>
rule-application post-processing
charging-action
<charging_action_name>
action priority
<action_priority> { [ dynamic-only | static-and-dynamic | timedef
<timedef_name> ] { group-of-ruledefs
<ruledefs_group_name> | ruledef
<ruledef_name> } charging-action
<charging_action_name> [ monitoring-key
<monitoring_key> ] [ description
<description> ] }
post-processing priority
<priority> ruledef
<ruledef_name> charging-action
<charging_action_name>
active-charging service
<service_name>
timedef
<timedef_name> [ -noconfirm ]
start day { friday | monday | saturday | sunday | thursday | tuesday | wednesday } time
<hh> <mm> <ss> end day { friday | monday | saturday | sunday | thursday | tuesday | wednesday } time
<hh> <mm> <ss>
start time
<hh> <mm> <ss> end time
<hh> <mm> <ss>
charging-action
<charging_action_name>
action priority <
action_priority> timedef <
timedef_name> { group-of-ruledefs <
group_name> | ruledef <
ruledef_name> } charging-action <
charging_action_name> [ description <
description> ]
active-charging service
<service_name>
group-of-prefixed-urls
<group_name> [ -noconfirm ]
active-charging service
<service_name>
group-of-prefixed-urls
<group_name>
active-charging service
<service_name>
url-preprocessing bypass group-of-prefixed-urls
<group_name>
url-preprocessing bypass group-of-prefixed-urls
<group_name_n>
show active-charging group-of-prefixed-urls { all | name <group_name> } [ service name
<acs_service> ]
[ | { grep <grep_options> | more } ]